Micron Document




MLisp
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
"MLisp" is also another name for Mocklisp, a stripped-down version of Lisp used as an extension language in Gosling Emacs.

MLISP is a variant of Lisp with an Algol-like syntax based on M-Expressions, which were the function syntax in the original description of Lisp by John McCarthy. McCarthy's M-expressions were never implemented in an exact form.cite-ref-1[1]

MLISP was first implemented for the IBM 360 by Horace Enea and then reimplemented for the PDP 10 by David Canfield Smith. This second implementation also supported a special kind of lambdas ("FEXPR"), which do not evaluate their arguments. As in Lisp-1 or Scheme, there was a single namespace for variables and functions.cite-ref-2[2]

While MLISP was just a preprocessor with an alternative, more reader-friendly syntax for Lisp, the descendant MLISP 2 introduced new concepts:cite-ref-3[3]

• interactive interpretation of programs instead of compilation
• extensibility with a syntax description language (see hygienic macros)
backtracking by the use of closures on a stack and indices for continuationscite-ref-4[4]

MLISP2 was called a transitional language by the authors. Larry Tesler improved the pattern matching system to implement a successor language called LISP70, which was only completed to a preliminary version. Though this path of LISP evolution is widely neglected, it resembles some features, later found in ML or Scheme.cite-ref-5[5]

M-LISP (MetaLISP) by Robert Muller is an unrelated language from 1989–1992. It was "a hybrid of M-expression LISP and Scheme".cite-ref-6[6]cite-ref-7[7]

Contents


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

See also

There have been multiple implementations of infix-notation Lisps and Lisp-like or Lisp-derived languages. Some notable examples include:

Dylan, which originated in Apple's Newton project
CGOL

References

cite-note-11. Enea, Horace (1968) MLISP CS-TR-68-92.pdf
cite-note-22. Smith, David Canfield (1970) MLISP USERS' MANUAL Smith-MLISP-AIM-84.pdf (recommended first)
cite-note-33. Smith, David Canfield and Enea, Horace J. (1973) MLISP 2 CS-TR-73-356.pdf
cite-note-44. Smith, David Canfield and Enea, Horace J. (1973) Backtracking in MLISP2: an efficient backtracking method for LISP 074.pdf
cite-note-55. Tesler, Lawrence G., Smith, David Canfield and Enea, Horace J. (1973) The LISP70 pattern matching system 073.pdf
cite-note-66. citerefmuller1992Muller, Robert (October 1992). "M-LISP: a representation-independent dialect of LISP with reduction semantics". ACM Transactions on Programming Languages and Systems. 14 (4): 589–616. CiteSeerX 10.1.1.40.4948. doi:10.1145/133233.133254.
cite-note-77. citerefmuller1989Muller, Robert (1989). MetaLISP: a representation independent dialect of LISP with reduction semantics (PhD thesis).